package com.uxwine.alarm.mon;

import java.util.Calendar;

import android.content.Context;
import android.content.Intent;
import android.provider.Settings;

/**
 * 本类负责管理系统的一些提示。
 * 比如系统设置闹钟后的状态栏
 * 比如锁屏界面展示下一个闹钟时间
 * @author zhangzhongming
 * @date 2013.5.2
 */
public class AlarmTip
{
    /**
     * 在闹钟被设置之后，通知系统，给出相应的展示：
     * 在状态栏中显示闹钟的图标。
     * 在锁屏界面显示闹钟的剩余时间
     * 
     * @param ctx
     * @param triggerTime 毫秒，如果为-1 表示取消；
     */
	public static void tipAlarmSetted(Context ctx, long triggerTime)
	{
		if(triggerTime == -1)
		{
			setStatusBarIcon(ctx, false);
			setNextAlarmTip(ctx, "");
		}
		else
		{
			setStatusBarIcon(ctx, true);
			Calendar c = Calendar.getInstance();
	        c.setTimeInMillis(triggerTime);
	        String timeString = AlarmContext.formatWeekDayAndTime(ctx, c);
	        setNextAlarmTip(ctx, timeString);
		}
	}
	
	/**
     * Tells the StatusBar whether the alarm is enabled or disabled
     */
	public static void setStatusBarIcon(Context context, boolean enabled) 
    {
        Intent alarmChanged = new Intent("android.intent.action.ALARM_CHANGED");
        alarmChanged.putExtra("alarmSet", enabled);
        context.sendBroadcast(alarmChanged);
    }    

	
	/**
	* Save time of the next alarm, as a formatted string, into the system
	* settings so those who care can make use of it.
	*/
	public static void setNextAlarmTip(final Context context, String timeString) 
	{
		Settings.System.putString(context.getContentResolver(),
	                 Settings.System.NEXT_ALARM_FORMATTED,
	                 timeString);
	}
}
